package com.jf.identity.entity;

import com.alibaba.fastjson.annotation.JSONField;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;

/**
 * 监考员实体类
 *
 * @author FCG
 */
public class Examiner implements Serializable {
    private static final long serialVersionUID = -2048841043742943260L;
    /**
     * uuid 用于生成监考员验证信息主键
     */
    private String uid;
    /**
     * 监考员编号
     */
//    @NotBlank(message = "监考员编号不能为空")
    @Size(max = 18, message = "监考员编号 最大18个字符")
    @JSONField(name = "ExaminerNum")
    private String examinerNum;
    /**
     * 监考员类型  1：甲  2：乙  3：丙
     */
    @NotBlank(message = "监考员类型 不能为空")
    @Range(min = 1, max = 3, message = "监考员类型  1：甲  2：乙  3：丙")
    @JSONField(name = "Type")
    private String type;
    /**
     * 监考员姓名 最大50字符
     */
//    @NotBlank(message = "监考员姓名 不能为空")
    @Size(max = 50, message = "监考员姓名 最大50字符")
    @JSONField(name = "Name")
    private String name;
    /**
     * 监考员身份证号 最大18字符
     */
    @NotBlank(message = "监考员身份证号 不能为空")
    @Size(max = 18, message = "监考员身份证号 最大18字符")
    @JSONField(name = "IdCardNum")
    private String idCardNum;
    /**
     * 监考员性别 (1 男 2 女)
     */
//    @NotBlank(message = "监考员性别 不能为空")
    @Range(min = 1, max = 2, message = "监考员性别 (1 男 2 女)")
    @JSONField(name = "Sex")
    private String sex;
    @JSONField(name = "Image")
    private String image;
    /**
     * 签到/验证时间
     */
    @NotNull(message = "签到/验证时间 不能为空")
    @JSONField(name = "DateTime")
    private Date dateTime;
    /**
     * 监考员照片,base64编码
     */
    @JSONField(name = "Photo")
    private String photo;

    public String getUid() {
        return uid;
    }

    public void setUid(String uid) {
        this.uid = uid;
    }

    public String getExaminerNum() {
        return examinerNum;
    }

    public void setExaminerNum(String examinerNum) {
        this.examinerNum = examinerNum;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getIdCardNum() {
        return idCardNum;
    }

    public void setIdCardNum(String idCardNum) {
        this.idCardNum = idCardNum;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public Date getDateTime() {
        return dateTime;
    }

    public void setDateTime(Date dateTime) {
        this.dateTime = dateTime;
    }

    public String getPhoto() {
        return photo;
    }

    public void setPhoto(String photo) {
        this.photo = photo;
    }
}
